package top.likeqc.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import top.likeqc.dto.PaperDTO;
import top.likeqc.entity.Paper;
import com.baomidou.mybatisplus.extension.service.IService;
import top.likeqc.vo.PaperAndQuestionVO;
import top.likeqc.vo.PaperVO;

import java.util.List;

/**
 * <p>
 * 问卷 服务类
 * </p>
 *
 * @author likeqc
 * @since 2022-04-16
 */
public interface IPaperService extends IService<Paper> {

    /**
     * 根据课程id查询出所有问卷
     * @param page
     * @param courseId
     * @return
     */
    Page<PaperVO> listByCourseId(Page<PaperVO> page, Long courseId);

    /**
     * 添加问卷和问题
     * @param paperDTO
     * @return
     */
    boolean addPaperAndQuestion(PaperDTO paperDTO);

    /**
     * 根据课程ID删除相关数据
     * @param paperIds
     */
    boolean deleteByCourseId(List<Long> paperIds);

    /**
     * 获取问卷和问题
     * @param paperId
     * @return
     */
    PaperAndQuestionVO getPaperAndQuestion(Long paperId) throws Exception;

    /**
     * 获取当前学生 待完成 问卷
     * @param page
     * @return
     */
    Page<PaperVO> getTodoPaper(Page<PaperVO> page);

    /**
     * 获取当前学生 已经完成 问卷
     * @param page
     * @return
     */
    Page<PaperVO> getHistoryPaper(Page<PaperVO> page);

    /**
     * 获取当前学生 待开始 问卷
     * @param page
     * @return
     */
    Page<PaperVO> getFuturePaper(Page<PaperVO> page);
}
